package com.runmi.webchat.aftersale.web.iframe.service;

import java.util.Map;
import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.runmi.webchat.aftersale.common.result.Result;
import com.runmi.webchat.aftersale.common.result.ResultFactory;
import com.runmi.webchat.aftersale.common.utils.DESUtil;
import com.runmi.webchat.aftersale.common.utils.DateUtil;
import com.runmi.webchat.aftersale.common.utils.MD5;
import com.runmi.webchat.aftersale.common.utils.StringUtil;
import com.runmi.webchat.aftersale.dbcore.entity.User;
import com.runmi.webchat.aftersale.dbcore.mapper.UserMapper;
import com.runmi.webchat.aftersale.util.Constants;
import com.runmi.webchat.aftersale.web.base.BaseService;




@Service
public class LoginService extends BaseService{

	@Autowired
	private UserMapper userMapper;
	
	
	public Map<String,Object> login(String loginName,String password){		
		Map<String,Object> result=new HashMap<String,Object>();
		try
		{		
			
			if(StringUtil.isBlank(loginName) || StringUtil.isBlank(password)){
				result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_FAIL);
				result.put(Constants.RETURN_MESSAGE_KEY, "");					
				return result;
			}
			User  record=new User();
			record.setDelFlag((byte)0);
			record.setUserName(loginName);
			List<User> users= userMapper.select(record);
			if(null==users || users.isEmpty()){
				result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_FAIL);
				result.put(Constants.RETURN_MESSAGE_KEY, "用户名错误");	
				return result;
			}
			User user= users.get(0);
			if(null==user){
				result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_FAIL);
				result.put(Constants.RETURN_MESSAGE_KEY, "用户名错误");	
				return result;
			}
			
			if(null==user.getStatus() || user.getStatus()!=(byte)1 ){
				result.put(Constants.RETURN_CODE_KEY, "0300");
				result.put(Constants.RETURN_MESSAGE_KEY, "用户已被冻结");	
				return result;
			}
			
//			password="111111";
			String psdmd5=MD5.getMD5(password);
			if(!user.getPassword().equals(psdmd5)){		
				result.put(Constants.RETURN_CODE_KEY, "0200");
				result.put(Constants.RETURN_MESSAGE_KEY, "密码错误");	
				return result;
			}
			
			String tocken="scm-"  + user.getId() + "-"+ DateUtil.getToday("yyyyMMddHHmmss");
			result.put("tocken",DESUtil.encryptDES(tocken));
			result.put("userId", user.getId());
	
						
			result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_SUCCESS);
			result.put(Constants.RETURN_MESSAGE_KEY, Constants.RETURN_CODE_SUCCESS_MESSAGE);		
			
		}catch(Exception ex){
			logErr.error(String.format("login[%s] error",loginName),ex);
			result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_FAIL);
			result.put(Constants.RETURN_MESSAGE_KEY, Constants.RETURN_CODE_FAIL_EXCEPTION);		
		}
		return result;
	}
	
//	public Result login(String loginName,String password){		
//		Result result=null;
//		try
//		{		
//			
//			if(StringUtil.isBlank(loginName) || StringUtil.isBlank(password)){
////				result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_FAIL);
////				result.put(Constants.RETURN_MESSAGE_KEY, "");					
//				return ResultFactory.getResultFail("请输入账号和密码");
//			}
//			ProductUser  record=new ProductUser();
//			record.setDelFlag((byte)0);
//			record.setUserName(loginName);
//			List<ProductUser> users= productUserMapper.select(record);
//			if(null==users || users.isEmpty()){
////				result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_FAIL);
////				result.put(Constants.RETURN_MESSAGE_KEY, "用户名错误");	
//				return ResultFactory.getResultFail("用户名错误");
//			}
//			ProductUser user= users.get(0);
//			if(null==user){
////				result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_FAIL);
////				result.put(Constants.RETURN_MESSAGE_KEY, "用户名错误");	
//				return ResultFactory.getResultFail("用户名错误");
//			}
//			
//			if(null==user.getStatus() || user.getStatus()!=(byte)1 ){
////				result.put(Constants.RETURN_CODE_KEY, "0300");
////				result.put(Constants.RETURN_MESSAGE_KEY, "用户已被冻结");	
////				return result;
//				return ResultFactory.getResultFail("用户已被冻结");
//			}
//			
////			password="111111";
//			String psdmd5=MD5.getMD5(password);
//			if(!user.getPassword().equals(psdmd5)){		
////				result.put(Constants.RETURN_CODE_KEY, "0200");
////				result.put(Constants.RETURN_MESSAGE_KEY, "密码错误");	
////				return result;
//				return ResultFactory.getResultFail("密码错误");
//			}
//			
//			String tocken="scm-"  + user.getId() + "-"+ DateUtil.getToday("yyyyMMddHHmmss");
//			
//			return ResultFactory.getResultSuccess(DESUtil.encryptDES(tocken));
////			result.put("tocken",DESUtil.encryptDES(tocken));
////			result.put("userId", user.getId());
//	
////						
////			result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_SUCCESS);
////			result.put(Constants.RETURN_MESSAGE_KEY, Constants.RETURN_CODE_SUCCESS_MESSAGE);		
//			
//		}catch(Exception ex){
//			logErr.error(String.format("login[%s] error",loginName),ex);
//			result= ResultFactory.getResultFail(Constants.RETURN_CODE_FAIL_EXCEPTION);
////			result.put(Constants.RETURN_CODE_KEY, Constants.RETURN_CODE_FAIL);
////			result.put(Constants.RETURN_MESSAGE_KEY, Constants.RETURN_CODE_FAIL_EXCEPTION);		
//		}
//		return result;
//	}
}
